Error correction method in full response read channels

ABSTRACT

The present invention provides an error correction method that is used in full response read channels. This method includes the steps of: obtaining a read signal from a storage medium and converting the read signal into channel bits that are recorded in the storage medium, such as a DVD disk, in the NRZI format; and using the Viterbi detector to determine whether bit state transitions in the channel bits occur within a predetermined run-lengths of the RLL codes. If transitions occur within the predetermined run-lengths, then the values of the bits with state transitions are corrected.

REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of priority under 35U.S.C.§119(a) of Taiwan Patent Application No. 090107694, titled “Error Correction Method in Full Response Read Channels”, filed on Mar. 30, 2001.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The invention generally relates to a signal processing method in read channels, and in particular to an error correction method in full response read channels.

[0004] 2. Description of the Related Art

[0005] Optical storage systems sometimes use analog peak detection to perform data processing. However, when the recording density of the storage medium increases, the analog peak detection becomes less reliable. This is because ISI (Inter-Symbol Interference) occurs among sequential bits when the bandwidth of the read channel is lower than the bandwidth of the transmitted signals. Serious ISI results in timing jitters. Therefore, as the recording density increases, ISI causes serious timing jitters that make phase locking more difficult.

[0006] Information codes can be recorded on disks in various formats, such as NRZ (Non-Return-to-Zero) and NRZI (Non-Return-to-Zero-Inverse). The recording format of DVD disks is the NRZI format. In CD/DVD storage systems, there are usually two different structures in read channels in the prior art. They are the PRML (Partial Response Maximum Likelihood) channel and the full response channel. Although the PRML channel can increase the recording density, this method requires perfect equalization of the channel signals so that the shape of the channel signals matches a predetermined PR (Partial Response) target waveform. Furthermore, ISI can not be removed in the PRML channel. The channel signals are equalized to provide a target pulse waveform, and the target pulse waveform has default values at specific sampling points. The ISI on the target pulse waveform is controlled into an expected form and is combined into a pulsed detection method. Such a method determines the occurrence of signal pulses.

[0007] In addition, the PRML channel requires ML (Maximum Likelihood) detection to restore correct data from sampled signals in each pulse cycle. The ML detection is usually implemented by a Viterbi detector. The Viterbi detector is a device using the Viterbi algorithm invented by Andrew Viterbi in 1967. Using the Viterbi detector in a PRML channel is well known by those who are skilled in the art. In the PRML channel, reproduced signals of a disk are processed by a PR equalizer and a Viterbi detector.

[0008] With reference to FIG. 1, it shows a block diagram of the Viterbi detector. The Viterbi detector primarily includes a Branch Matrices Computing Circuit 10, an Add/Compare/Select Circuit 11, and a Path Memory Unit 12. The Branch Matrices Computing Circuit 10 receives and computes an equalizer output signal J from an equalizer (not shown) in an optical storage system with at least one non-zero equalization target value, such as four equalization target values {0, 0.25, 0.75, 1}, to generate branch matrices B000₁, B000₂, B001₁, B011₁, B100₁, B110₁, B111₁, and B111₂. The branch matrices at each time are B000₁=B000₂=(0-J)², B001₁=B100₁=(0.25-J)², B011₁=B110₁=(0.75-J)² B111₁=B111₂=(1.0-J)², respectively. Therefore, the Branch Matrices Computing Circuit 10 comprises four subtractors, four multipliers, and four buffers. The subtractors are used to compute J-0, J-0.25, J-0.75, and J-1. And the multipliers are employed to compute the squares. Then, the computed results are stored in the buffers. The branch matrices represent the similarity between the equalization output signals processed by the equalizer and the ideal equalized signals. Moreover, the Add/Compare/Select Circuit 11 uses the branch matrices B000₁, B000₂, B001₁, B011₁, B100₁, B110₁, B111₁, and B111₂ to perform addition, comparison, and selection. Then, the Add/Compare/Select Circuit 11 generates path control signals H000 and H111. Further, the Path Memory Unit 12 is controlled by the path control signals H000 and H111 to output detector signals.

[0009] Since the Branch Matrices Computing Circuit 10 and Add/Compare/Select Circuit 11 of the Viterbi detector in the PRML channel involve floating operations, the hardware circuit design has to take the number of bits into account for floating numbers. This directly complicates the design of the subtractors, multipliers, adders, and comparators and increases the required area of the VLSI.

[0010] In a full response read channel 20 as shown in FIG. 2, reproduced signals obtained from a recording medium 6 by a light signal reading system (not shown) are sent to an equalizer 1. Then the signals are sent through a data slicer 2, a PLL (Phase Lock Loop) 3, and a sampler 4 to produce NRZI signals to EFM Plus Demodulator 7. Sometimes, errors in the NRZI signals can be readily checked by the RLL (Run Length Limited) codes. The RLL codes have two constraints d and k, which define the minimum and maximum run-lengths of continuous 1 and 0 in the data stream. In particular, d constraint is used to control high frequency contents of the data stream while k constraint is used to control low frequency contents. Therefore, the RLL codes eliminate a lot of transitions in data transmissions. Signals in full response read channels can be restored without interference. That is, the signal processing in a full response read channel is not influenced by ISI at all.

[0011]FIG. 3 shows an example of reproduced signals that contain errors. It shows the relations among data codes, recorded data waveforms, corresponding optical disk pits, ideal reproduced signals, ideal NRZI, actually reproduced signals, and actual NRZI. In the actual NRZI signals, errors occurring at points a and c can be readily detected because the signals at points a and c violate the RLL codes.

[0012] Generally, there are two types of errors that occur in data transmission, storage, and restoration. The first type is random error. It occurs in a single bit when the bit is replaced with the corresponding value. The second type is burst error. It occurs in a continuous series of bits. The length and frequency of the burst error may be random or regular. In either type, the occurrence of errors is usually determined according to the storage medium or channel being used. Thus, it is hard to list all conditions that violate the RLL codes if one uses a table to implement error corrections.

[0013] The EFM Plus Demodulation requires that no transitions, i.e. pit-to-land or land-to-pit transitions, occur between 2 and 10 bits of interval. These limits of continuous run-lengths are usually expressed as RLL constraints (d,k)=(2,10). If the RLL codes are utilized, some errors in NRZI signals can be corrected before performing the EFM Plus Demodulation to effectively improve system efficiency.

SUMMARY OF THE INVENTION

[0014] One purpose of the present invention is to perform error corrections by implementing the Viterbi algorithm in full response read channels that do not have ISI. In particular, the invention applies to all full response read channels encoded with RLL codes.

[0015] Another purpose of the invention is to use an error correction circuit implemented by the Viterbi algorithm instead of a table, which can not list all situations that violate the RLL codes.

[0016] Therefore, the invention utilizes a Viterbi detector to implement an Error Correction Circuit with RLL codes and to correct NRZI errors in full response read channels such as the CD/DVD systems. The invention discloses an error correction method, which applies the Viterbi algorithm to full response read channels. The invention corrects random errors in NRZI signals with RLL constraint d=2.

[0017] Due to the CD/DVD RLL constraint d=2, possible states of the Viterbi detector are decreased from eight to six because two of them are not allowed by the RLL constraints. In full response read channels, the channel bit of NRZI signals can only be 0 or 1. Therefore, by using the Viterbi detector to implement Error Correction Circuit with RLL codes, the simplification of the reference amplitude greatly reduces the complexity of the Branch Matrices Computing Circuit and the Add/Compare/Select Circuit than the Viterbi detector in PRML systems. Consequently, the implementation of the invention by a VLSI is more favorable.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The present invention will become more fully understood from the detailed description given hereinafter illustration only, and thus are not limitative of the present invention, and wherein:

[0019]FIG. 1 is a block diagram of the Viterbi detector;

[0020]FIG. 2 is a block diagram of the read channel in an optical storage system;

[0021]FIG. 3 is a schematic view of reproduced signals containing errors, showing the relations among data codes, recorded data waveforms, corresponding optical disk pits, ideal reproduced signals, ideal NRZI, actually reproduced signals and actual NRZI;

[0022]FIG. 4 shows a block diagram of a preferred embodiment of the invention;

[0023]FIG. 5 is a state diagram of the preferred embodiment, where RLL constraint d=2;

[0024]FIG. 6 is a Trellis diagram of FIG. 5;

[0025]FIG. 7 shows the Branch Matrices Computing Circuit in the preferred embodiment;

[0026]FIG. 8 shows the Add/Compare/Select Circuit in the preferred embodiment; and

[0027]FIG. 9 shows the path memory unit in the preferred embodiment.

DETAILED DESCRIPTION OF THE INVENTION

[0028] In read channels, reproduced NRZI signals from a DVD disk vary from 3T to 11T and errors may occur at any place. It is very difficult to list all conditions that violate RLL codes by using a table. Therefore, to design an NRZI error correction circuit, the invention applies the Viterbi algorithm in PRML systems to full response read channels.

[0029] With reference to FIG. 4, the invention adds an Error Correction Circuit with RLL codes 5 between a sampler 4 and an EFM Plus Demodulator 7 to correct errors in the NRZI signals. In one embodiment of the invention, the error correction circuit corrects random errors in the NRZI signals according to the RLL constraint d=2. Thus, if the input signals in the full response read channels are completely unstructured, there are 8 possible channel states; namely S000, S0001, S0010, S011, S100, S101, S110, and S111. Two states S010 and S101 are not allowed in the full response read channels with RLL constraint d=2. Thus, there are only six possible channel states in the full response read channels.

[0030] As shown in FIG. 5, when the reference amplitude is zero (0), under the RLL codes with constraint d=2, state S000 is kept invariant, state S100 transits to state S000, state S110 transits to state S100, and state S111 transits to state S110. On the other hand, when the reference amplitude is one (1), state S111 is kept invariant, state S0111 transits to state S111, state S0001 transits to state S011, and state S000 transits to state S001.

[0031]FIG. 6 is a Tellis diagram of FIG. 5, the state at time t is transited to the next state at time t+1 according to a reference amplitude (0 or 1).

[0032] The following paragraphs further explain the preferred embodiment, which uses a Viterbi detector to implement Error Correction Circuit with RLL codes.

[0033] A. Branch Matrices Computating Circuit

[0034] In the preferred embodiment of the invention, the values of the NRZI signals are either 0 or 1 only. Therefore, the design of the Branch Matrices Computing Circuit 10 in full response read channels is relatively simpler than the one in PRML systems. At each time, the branch matrices are:

B001=B000₂=B100₁=B110₁=NRZI

B001₁=B011₁=B111₁=B111₂=not NRZI  (1)

[0035] Subsequently, as shown in FIG. 7, the Branch Matrices Computing Circuit 10 can be implemented by an inverter 101 instead of subtractors and multipliers. And the branch matrices B000₁, B000₂, B001₁, B0011₁, B100₁, B110₁, B111₁, and B111₂ are either 0 or 1.

[0036] B. Add/Compare/Select Circuit

[0037] Please refer to FIG. 8, the initialization of path matrices P000, P001, P011, P100, P110, and P111 used in the Add/Compare/Select Circuit 11 is P000=P001=P011=P100=P110=P111=0. The branch matrices B000₁, B000₂, B001₁, B011₁, B100₁, B110₁, B111₁, and B111₂ generated from the Branch Matrices Computing Circuit 10 according to Equation (1) are used to generate the path matrices. The Add/Compare/Select Circuit 11 compares P000(t)+B000₁(t) with P100(t)+B000₂(t) and compares P011(t)+B111₁(t) with P111(t)+B111₂(t), then determines the output value of path control signals H000(t) and H111(t) as follows: ${{H000}(t)} = \left\{ {{\begin{matrix} 0 \\ 1 \end{matrix}\begin{matrix} {{{when}\quad {{P000}(t)}} + {{B000}_{1}(t)}} \\ {{{when}\quad {{P100}(t)}} + {{B000}_{2}(t)}} \end{matrix}} = {{{\min \left\{ {{{{P000}(t)} + {{B000}_{1}(t)}},{{{P100}(t)} + {{B000}_{2}(t)}}} \right\}}{{H111}(t)}} = \left\{ {{\begin{matrix} 0 \\ 1 \end{matrix}\begin{matrix} {{{when}\quad {{P011}(t)}} + {{B111}_{1}(t)}} \\ {{{when}\quad {{P111}(t)}} + {{B111}_{2}(t)}} \end{matrix}} = {\min \left\{ {{{{P011}(t)} + {{B111}_{1}(t)}},{{{P111}(t)} + {{B111}_{2}(t)}}} \right\}}} \right.}} \right.$

[0038] The Add/Compare/Select Circuit 11 then outputs the path control signals H000 and H111 to the Path Memory Unit 12 and refreshes the six path matrices P000(t+1), P001(t+1), P011(t+1), P100(t+1), P110(t+1), and P111(t+1). They are computed in the following way:

P000(t+1)=min {P000(t)+B000₁(t),P100(t)+B000₂(t)};

P001(t+1)=P000(t)+B001₁(t);

P011(t+1)=P001(t)+B011₁(t);

P100(t+1)=P110(t)+B100₁(t);

P110(t+1)=P111(t)+B110₁(t); and

P111(t+1)=min {P011(t)+B111₁(t),P111(t)+B111₂(t)}.

[0039] In particular, due to the decrease in the number of channel bits, the adder 111, the comparator 112 and the selector 113 in the Add/Compare/Select Circuit 11 are less complicated and occupy smaller areas.

[0040] C. Path Memory Unit

[0041] As shown in FIG. 9, the Path Memory Unit 12 includes n detection sequence switches 21 ₁˜21 _(n) and (n−1) delay elements 22 ₁˜22 _(n−1) among adjacent detection sequence switches, respectively. The output of each delay element after a unit of delay time becomes the input of the next detection sequence switch. The path control signals H000 and H111 from the Add/Compare/Select Circuit 11 are inputted to each of the detection sequence switches 21 ₁˜21 _(n). The detection sequence switches are switched according to the Trellis diagram shown in FIG. 7.

[0042] According to the preferred embodiment of the invention, using a Viterbi detector to implement an Error Correction Circuit with RLL constraint d=2 in full response read channels can reduce random errors in the NRZI signals. According to experimental results, the Viterbi detector can reduce errors by about 15%.

[0043] In addition, the invention applies the Viterbi detector to full response read channels that are not affected by ISI at all. The input values of the Branch Matrices Computing Circuit and the Add/Compare/Select Circuit are either 0 or 1, greatly reducing the complexity in circuit designs and the number of necessary channel bits. The invention can be applied to not only CD/DVD systems but also all full response read channels with RLL codes.

[0044] The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims. 

What is claimed is:
 1. An error correction method used in full response read channels, which comprises the steps of: obtaining a read signal from a storage medium and converting the read signal into channel bits in an NRZI (Non-Return-to-Zero-Inverse) format; and utilizing a Viterbi detector to determine whether any state transition of the channel bit occurs within a predetermined run-lengths of the RLL codes.
 2. The method of claim 1, wherein the state transition refers to a transition from logic “H” to logic “L”.
 3. The method of claim 1, wherein the state transition refers to a transition from logic “L” to logic “H”.
 4. The method of claim 1, wherein the predetermined run-lengths are (d+1) bits whose states are in the logic “H” without transitions.
 5. The method of claim 4, wherein d=2.
 6. The method of claim 1, wherein the channel bits are selected from 0 and
 1. 7. The method of claim 1, wherein the Viterbi detector includes a Branch Matrices Computing Circuit.
 8. The method of claim 7, wherein the branch matrices are selected from 0 and
 1. 9. The method of claim 7, wherein the Branch Matrices Computing Circuit is implemented by an inverter.
 10. The method of claim 7, wherein each of the channel bits and the branch matrices are represented by one bit.
 11. An error correction method used in full response read channels, which comprises the steps of: obtaining a read signal from a storage medium and converting the read signal into channel bits; and utilizing the Viterbi detector to determine whether any state transition of the channel bits occurs within a predetermined run-lengths of the RLL codes;
 12. The method of claim 11, wherein the predetermined run-lengths are (d+1) bits whose states are kept logically invariant.
 13. The method of claim 12, wherein d=2.
 14. The method of claim 11, wherein the channel bits are selected from 0 and
 1. 15. The method of claim 11, wherein the Viterbi detector includes a Branch Matrices Computing Circuit.
 16. The method of claim 15, wherein the branch matrices generated from the Branch Matrices Computing Circuit are selected from 0 and
 1. 17. The method of claim 15, wherein the Branch Matrices Computing Circuit is implemented by an inverter.
 18. The method of claim 11, wherein the channel bits are in the NRZI format.
 19. The method of claim 16, wherein each of the branch matrices is represented by one bit. 